package com.server.modules.sys.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class MyFileUtils {
	/**
	 * 日志对象
	 */
	protected static Logger logger = LoggerFactory.getLogger(MyFileUtils.class);
	/**
     * 读取某个文件夹下的所有文件
     */
    public static List<File> readfile(String filepath,List<File> files) throws FileNotFoundException, IOException {
    	if(files==null){
    		 files=new ArrayList<>();
    	}
            try {

                    File file = new File(filepath);
                    if (!file.isDirectory()) {
                            //System.out.println("文件");
                            logger.info("文件: path=" + file.getPath()+"-- absolutepath=" + file.getAbsolutePath()+"absolutepath=" + file.getAbsolutePath()+"name=" + file.getName());
                            /*System.out.println("path=" + file.getPath());
                            System.out.println("absolutepath=" + file.getAbsolutePath());
                            System.out.println("name=" + file.getName());*/
                            files.add(file);

                    } else if (file.isDirectory()) {
                            //System.out.println("文件夹");
                            String[] filelist = file.list();
                            for (int i = 0; i < filelist.length; i++) {
                                    File readfile = new File(filepath + File.separator + filelist[i]);
                                    if (!readfile.isDirectory()) {
                                           /* System.out.println("path=" + readfile.getPath());
                                            System.out.println("absolutepath=" + readfile.getAbsolutePath());
                                            System.out.println("name=" + readfile.getName());*/
                                            logger.info("文件夹: path=" + file.getPath()+" -- absolutepath=" + file.getAbsolutePath()+"absolutepath=" + file.getAbsolutePath()+"name=" + file.getName());
                                            files.add(readfile);

                                    } else if (readfile.isDirectory()) {
                                            readfile(filepath + File.separator + filelist[i],files);
                                    }
                            }

                    }

            } catch (FileNotFoundException e) {
                    System.out.println("readfile()   Exception:" + e.getMessage());
            }
            return files;
    }

    /**
     * 删除某个文件夹下的所有文件夹和文件
     */
    
    
   public static boolean deletefile(String delpath)
                    throws FileNotFoundException, IOException {
            try {

                    File file = new File(delpath);
                    if (!file.isDirectory()) {
                            System.out.println("1");
                            file.delete();
                    } else if (file.isDirectory()) {
                            System.out.println("2");
                            String[] filelist = file.list();
                            for (int i = 0; i < filelist.length; i++) {
                                    File delfile = new File(delpath + File.separator + filelist[i]);
                                    if (!delfile.isDirectory()) {
                                            System.out.println("path=" + delfile.getPath());
                                            System.out.println("absolutepath="
                                                            + delfile.getAbsolutePath());
                                            System.out.println("name=" + delfile.getName());
                                            delfile.delete();
                                            System.out.println("删除文件成功");
                                    } else if (delfile.isDirectory()) {
                                            deletefile(delpath + File.separator + filelist[i]);
                                    }
                            }
                            file.delete();

                    }

            } catch (FileNotFoundException e) {
                    System.out.println("deletefile()   Exception:" + e.getMessage());
            }
            return true;
    }
}
